#!/bin/sh
FTP_IP=192.168.148.121      #ftp地址
FTP_USER=dell           #ftp用户名
FTP_PASS=123           #ftp密码
FTP_backup=/oraclebackup         #ftp上存放备份文件的目录，需要先在FTP上面建好
BK_DR=/backup/oracledata/tsbak    #备份文件存放路径
DB_DR=/backup/oracledata/ts  #已经存在文件
DAYS=7                    #DAYS=7代表删除7天前的备份，即只保留最近7天的备份
LINUX_USER=root           #系统用户名
date=` date +%Y%m%d `
tar zcvf $BK_DR/TianShan$date.tar.gz $DB_DR
chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者
find $BK_DR -name "TianShan*" -type f -mtime +$DAYS -exec rm {} \;  #删除7天前的备份文件(注意：{} \;中间有空格)
deldate=` date -d -7day +%Y%m%d `   #删除ftp服务器空间7天前的备份
ftp -i -v -n $FTP_IP << END 
#打开ftp服务器。21为ftp端口   <<END 和最后的 END：术语叫：当前文档here documents. here document 就是一段特殊目的的代码块
#它使用I/O重定向的形式来将一个命令序列传递到一个交互程序或者命令中,比如ftp、cat,或者ex文本编辑器.   本句可以理解从<<END开始以非对话模式的ftp连接,直到输入END为止的所有命令.   当然END这个名字是可以随便取的,不一定必须是END,可以取其它的名字。   】
user $FTP_USER $FTP_PASS   #用户名、密码
binary         #设置二进制传输
cd $FTP_backup  #进入ftp目录
lcd $BK_DR  #列出本地目录
mput TianShan$date.tar.gz TianShan$date.tar.gz    #上传目录中的文件
mdelete TianShan$deldate.tar.gz TianShan$deldate.tar.gz  #删除ftp空间7天前的备份
bye
END
